#ifndef _A_H_
#define _A_H_

/*
*public [公有成员]
*关键字public确定了类成员的访问属性。
*在类对象的作用域内，公共成员在类的外部都是可以访问的。
*/

/*
*private [私有成员]
*私有成员变量或函数在类的外部是不可访问的，甚至是不可查看的。只有类和友元函数可以访问私有成员
*默认情况下，类的所有成员都是私有的。这意味着，如果没有使用任何访问修饰符，类的成员将假定为私有成员
*/

/*
*protected [受保护成员]
*受保护成员变量或函数与私有成员十分相似，不同的是，受保护成员在派生类（即子类）中是可以访问的。
*/

/* 
*类的构造函数
*是一种特殊的成员函数，它会在每次创建类的新对象时执行。
*构造函数的名称与类的名称是完全相同的，并且不会返回任何类型，也不会返回void。
*构造函数可以带参数
*构造函数可用于为某些成员变量设置初始值。
*/

/* 
*类的析构函数
*是一种特殊的成员函数，它会在每次删除所创建的对象时执行。
*析构函数的名称与类的名称是完全的相同的，只是在前面加了个波浪号（~）作为前缀
*它不会返回任何值，也不能带有任何参数。
*析构函数有助于在跳出程序（比如关闭文件/释放内存）前释放资源。
*/

class BOX
{
public:/* 公有成员 */
  BOX(void);//构造函数
  ~BOX();//析构函数
  /* 成员函数 */
  void Set_Length(int val);//设置盒子长度
  int Get_Length(void);//得到盒子长度
  void Set_Breadth(int val);//设置盒子宽度
  int Get_Breadth(void);//得到盒子宽度
  void Set_Height(int val);//设置盒子高度
  int Get_Height(void);//得到盒子高度
  int Get_Volume(void);//得到盒子体积
private:     /* 私有成员 */
  int Volume;//盒子体积
protected:/* 受保护成员 */
  int Length;//盒子长度
  int Breadth;//盒子宽度
  int Height;//盒子高度
};

// class SmallBOX:public BOX//SmallBOX是BOX的派生类
// {
// public:/* 公有成员 */
//   char ID[5];//盒子的ID
// private:/* 私有成员 */
// protected:/* 受保护成员 */
// };

extern BOX Box1;//声明Box1，类型为BOX
// extern SmallBOX SmallBox1;//声明SmallBox1,类型为SmallBOX

#endif